package com.geek.ch06.anno;

import com.geek.entity.User;
import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserAndItemsMapper {

    /**
     * 注解 @Results
     *   注解 @Result  一一映射
     *   1.id属性，id = true代表主键字段
     *   2.property属性：类中的属性名
     *   3.column属性：表中的字段名
     *   4.javaType属性：关联的属性的 Java类型
     *   5.many属性：表示一对多关系  @Many
     *   6.one属性：表示一对一关系   @One
     */

    //需求：根据用户ID，查询其购买的商品信息
    @Select("select * from user where id = #{uid}")
    @Results({
            @Result(id = true , property = "id" , column = "id"),
            @Result(column = "id" , property = "ordersList" , javaType = List.class ,
                many = @Many(select = "com.geek.ch06.anno.OrdersMapper.findOrdersByUid"))
    })
    public User findUserById(int uid);

}
